/*
 * monitor.h
 *
 *  Created on: 17/12/2014
 *      Author: javier
 */

#ifndef MONITOR_H_
#define MONITOR_H_


#include <sys/types.h> // socket(), bind()
#include <sys/socket.h> // socket(), bind(), inet_addr()
#include <netinet/in.h> // inet_addr()
#include <arpa/inet.h> // inet_addr()
#include <string.h> // bzero()
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/shm.h>
#include <semaphore.h>

using namespace std;

#define MAXCLI 10
#define TAMBUF 26
#define MAXQ 5
#define TAM0 16
#define TAM1 35
#define TAM2 25
#define TAM3 20
#define TAM12 12
#define MAX_PARTIDAS 50
#define TAM_NOMBRE 20

#define TORNEO_UP 5

typedef struct {
    char tipo_senial[5];
    char identificador[6];
    char senial[5];
    char x[5];
    char y[5];
}envio;

typedef struct{
	int  id,socket,
		 puntaje,
		 disponible,
		 cantPartidas,
		 conectado,
		 posicionEnTorneo; //1 conectado puntaje dentro del torneo
	char nombre[10];

}t_jugador;

typedef struct{
	int  pid,
	     jugador1,
	     jugador2,
	     terminoPartida,
	     jugadorGanador; //ganador (1 o 2)
}t_partida;

typedef struct{
	t_jugador jugador[MAXCLI];
	int cantPartidas;
	t_partida partidas[50];
	int cantJugadores;
	int t_chequeo;
	int tiempo_torneo;
	int tiempo_espera_conex_max;
	int nivel_dificultad;
	int cantidad_rescates;
	//int flagFinConexiones;
	int partidaCaida; //1 se cayo la partida
}t_torneo;

envio recepcion;
//variable global para guardar el id de la memoria compartida.
int id_memo;
//variable global para acceder a los datos de torneo.
t_torneo *torneo;
char *sem_name_M;
char *sem_name_M2;
sem_t *SEM_M;
sem_t *SEM_M2;

void crearMemoriaCompartida(key_t clave);

#endif /* MONITOR_H_ */
